//
//  AClass.m
//  2Block
//
//  Created by zhengwei on 2/4/16.
//  Copyright © 2016 zhengwei. All rights reserved.
//

#import "AClass.h"
// Block: 代码块
// Block: 声明 语法：返回值＋Myblock＋传递参数
//typedef  int (^MyBlock)(int);
@implementation AClass
-(void)testBlock{
    /*
// 1 Block实现？
    MyBlock b1 = ^(int b){
        NSLog(@"我是一个代码块 我的接收是%d",b);
        return b+1;
    };
    int newB = b1(10);
    NSLog(@"%d",newB);
    
//  2 变量的作用范围: 代码的执行顺序
    __block int a = 5;
    MyBlock b1 = ^(int b){
        NSLog(@"我是一个代码块 我的接收是a=%d b=%d",a,b);
        a = a+1;
        return a+b;
    };
    int newB = b1(10);
    NSLog(@"%d",newB);
     
//  3 类之间的通信
    MyBlock b1 = ^(NSString *str1){
        NSLog(@"Aclass:%@",str1); //谁调谁执行
    };
    BClass *classb = [[BClass alloc]init];
    [classb testBlock:b1 str1:@"Aclass"];
    */
//  快速实现方法
    BClass *classb = [[BClass alloc]init];
    [classb testBlock:^(NSString *str1){
        NSLog(@"Aclass:%@",str1);
    } str1:@"Aclass"];
    
}
@end
